package dtaskboard.client.service;

import java.util.Date;

import com.google.gwt.user.client.rpc.AsyncCallback;

import dtaskboard.client.dto.ProjectDTO;
import dtaskboard.client.dto.SprintDTO;

public interface ProjectServiceAsync {

  void createProject(String projectName, String sessionId,
      AsyncCallback<Void> callback);

  void updateProject(String projectName, String projectHours,
      String projectSprints, String sessionId, AsyncCallback<Void> callback);

  void createSprint(String projectName, String plannedHours, Date startDate,
      Date endDate, String sessionId, AsyncCallback<Void> callback);

  void closeSprint(String projectName, String achievedHours, String sessionId,
      AsyncCallback<Void> callback);

  void getLatestSprint(String projectName, String sessionId,
      AsyncCallback<SprintDTO> callback);

  void createHistory(String projectName, String name, String sessionId,
      AsyncCallback<Void> callback);

  void createTask(String projectName, Long historyId, String name,
      Long estimate, String sessionId, AsyncCallback<Void> callback);

  void advanceTask(String projectName, Long taskId, String sessionId,
      AsyncCallback<Void> callback);

  void returnTask(String projectName, Long taskId, String sessionId,
      AsyncCallback<Void> callback);

  void getProject(String projectName, String sessionId,
      AsyncCallback<ProjectDTO> callback);

}
